<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      // 数组去重的几种方法--背也得背过
      const arr = [1, 2, 1, 3, 2, 1, 4, 5]

      //1.对象的属性 --数组的值当作key值进行一个存储

      //2.new Set() 优点：效率高，代码简单
      // const newArr = new Set(arr)
      // console.log(newArr)

      //3.filter+indexof  优点：可以插入对元素的操作，可塑性强
      // const newArr = arr.filter((item, index) => arr.indexOf(item) === index)
      // console.log(newArr)

      //4.遍历数组，删除重复  优点：直接操作数组，减少内存
      // for (let i = 1; i < arr.length; i++) {
      //   for (let j = 0; j < i; j++) {
      //     if (arr[i] === arr[j]) {
      //       arr.splice(i, 1)
      //       i -= 1
      //       break
      //     }
      //   }
      // }
      // console.log(arr)

      //5.reduce+includes
      // const newArr = arr.reduce(function (prev, item, index, arry) {
      //   if (!(prev.includes(item))) {
      //     prev.push(item)
      //     console.log(prev)
      //   }
      //   return prev
      // }, [])
      // console.log(newArr)
    </script>
  </body>
</html>
